import tensorflow as tf
import datetime, os

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

#定义模型
def create_model():
  return tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)), # Flatten展平28*28-->784
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
  ])

model = create_model()
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy', #sparse无需独热
              metrics=['accuracy'])

#定义log_dir:注意keras转义格式
log_dir = r'logs\\fit\\' + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")  #时间戳转换成字符串

# 要记录数据添加到回调callbacks中
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

# 模型训练：指定callbacks 回调
model.fit(x=x_train,
          y=y_train,
          epochs=1,
          validation_data=(x_test, y_test),
          callbacks=[tensorboard_callback])

#tensorboard --logdir E:\py-code\DL2\day05\logs --host=127.0.0.1



